
export default {

  namespace: 'example',

  state: {},

  subscriptions: {
    /**
     * Subscriptions 是一种从 源 获取数据的方法，它来自于 elm。
     * Subscription 语义是订阅，用于订阅一个数据源，然后根据条件 dispatch 需要的 action。
     * 数据源可以是当前的时间、服务器的 websocket 连接、keyboard 输入、geolocation 变化、history 路由变化等等。
     * @param {*} param0 
     */
    setup({ dispatch, history }) {  // eslint-disable-line
    },
  },

  effects: {
    /**
     * Effect 被称为副作用，在我们的应用中，最常见的就是异步操作。
     * 它来自于函数编程的概念，之所以叫副作用是因为它使得我们的函数变得不纯，同样的输入不一定获得同样的输出。
     * @param {*} param0 
     * @param {*} param1 
     */
    *fetch({ payload }, { call, put }) {  // eslint-disable-line
      yield put({ type: 'save' });
    },
  },

  reducers: {
    save(state, action) {
      return { ...state, ...action.payload };
    },
  },

};
